In the ancient X days you could have Xservers that had multiple active windows, like
one truecolor and one 8bit palette. Then most apps ran in 8bpp but a single window
would use truecolor. This is done by specifying different visuals for the windows.
To make this work we ensured that a window with a visual different from its parent
gets a native subwindow, so that X can tell the hardware to do its magic.
These days the only real time we get two different visual is when one is a rgba visual
and the other is not. So, the code to check this doesn't really do anything but
get in the way when someone accidentally manages to not get a rgba visual on
a child window (see
bb7054b508bfe41eb3e7f27496d4c2eb3a2b2f7a). So, to avoid
such errors we just remove the "different visual than parent" check.
native = FALSE;
if (window->parent->window_type == GDK_WINDOW_ROOT)
native = TRUE; /* Always use native windows for toplevels */
- else if (!window->input_only &&
- (attributes_mask & GDK_WA_VISUAL &&
- attributes->visual != gdk_window_get_visual (window->parent)))
- native = TRUE; /* InputOutput window with different visual than parent, needs native window */
if (gdk_window_is_offscreen (window))
{